home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj0987.arc / PAGESIZE.C < prev    next >
Text File  |  1987-07-02  |  3KB  |  107 lines

  1. /*
  2.  * PAGESIZE -- PC Tech Journal Laser Printer Page Size Test
  3.  *
  4.  * Version 1.0
  5.  *
  6.  * Copyright (c) 1987, Ziff Communications Company
  7.  * Program by: Rainer McCown
  8.  *
  9.  * This program determines the printable page size by positioning
  10.  * the cursor and then printing a character.  The HP LaserJets
  11.  * will print the numbers through 7 (on the top, right, and bottom
  12.  * sides) the others are off of the page.  The locations beyond
  13.  * the left margin are negative and cannot be addressed which
  14.  * shoves the higher numbers back onto the page.
  15.  */
  16.  
  17.  
  18. #define STD_OUT 1
  19.  
  20. extern void sndl(char [], int),
  21.         snd (char []),
  22.         setbinary(int);
  23.  
  24. /******************************* MAIN *******************************/
  25.  
  26. void main()
  27.  
  28. {
  29.  
  30.  /* Change STD_OUT to binary mode to avoid
  31.     converting LFs to CR,LF and to avoid
  32.     stopping on EOFs  */
  33.  
  34.  setbinary(STD_OUT);
  35.  
  36.  /* Initialize the printer */
  37.  
  38.  snd("\x1BE");                  /* Reset the printer   */
  39.  snd("\x1B&l0E");               /* Zero the top margin */
  40.  snd("\x1B&s1C");               /* Disable EOL wrap    */
  41.  snd("\x1B9");                  /* Clear margins       */
  42.  snd("\x1B&l0O");               /* Landscape mode      */
  43.  
  44.  /* Look for top edge */
  45.  
  46.  snd("\x1B*p500x230Y@");
  47.  snd("\x1B*p+100x-20Y1");
  48.  snd("\x1B*p+100x-20Y2");
  49.  snd("\x1B*p+100x-20Y3");
  50.  snd("\x1B*p+100x-20Y4");
  51.  snd("\x1B*p+100x-20Y5");
  52.  snd("\x1B*p+100x-20Y6");
  53.  snd("\x1B*p+100x-10Y7");
  54.  snd("\x1B*p+100x-10Y8");
  55.  snd("\x1B*p+100x-10Y9");
  56.  snd("\x1B*p+100x-10Y0");
  57.  
  58.  /* Look for bottom edge */
  59.  
  60.  snd("\x1B*p500x3090Y#");
  61.  snd("\x1B*p+100x+20Y1");
  62.  snd("\x1B*p+100x+20Y2");
  63.  snd("\x1B*p+100x+20Y3");
  64.  snd("\x1B*p+100x+20Y4");
  65.  snd("\x1B*p+100x+20Y5");
  66.  snd("\x1B*p+100x+20Y6");
  67.  snd("\x1B*p+100x+10Y7");
  68.  snd("\x1B*p+100x+10Y8");
  69.  snd("\x1B*p+100x+10Y9");
  70.  snd("\x1B*p+100x+10Y0");
  71.  
  72.  /* Look for left edge */
  73.  
  74.  snd("\x1B*p130x500Y$");
  75.  snd("\x1B*p-50x+100Y1");
  76.  snd("\x1B*p-50x+100Y2");
  77.  snd("\x1B*p-50x+100Y3");
  78.  snd("\x1B*p-50x+100Y4");
  79.  snd("\x1B*p-50x+100Y5");
  80.  snd("\x1B*p-50x+100Y6");
  81.  snd("\x1B*p-40x+100Y7");
  82.  snd("\x1B*p-40x+100Y8");
  83.  snd("\x1B*p-40x+100Y9");
  84.  snd("\x1B*p-40x+100Y0");
  85.  
  86.  /* Look for right edge */
  87.  
  88.  snd("\x1B*p2240x500Y%");
  89.  snd("\x1B*p-10x+100Y1");
  90.  snd("\x1B*p-10x+100Y2");
  91.  snd("\x1B*p-10x+100Y3");
  92.  snd("\x1B*p-10x+100Y4");
  93.  snd("\x1B*p-10x+100Y5");
  94.  snd("\x1B*p-10x+100Y6");
  95.  snd("\x1B*p-20x+100Y7");
  96.  snd("\x1B*p-20x+100Y8");
  97.  snd("\x1B*p-20x+100Y9");
  98.  snd("\x1B*p-20x+100Y0");
  99.  
  100.  
  101.  /* Eject page */
  102.  
  103.  snd("\f");
  104.  
  105. } /* End MAIN */
  106.  
  107.